package modelo.dto;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.io.Serializable;

public class Pelota implements Serializable {

	/**
	 *  Crecion de los atributos de la clase pelota
	 */
	private int coloractual, x, y, tamano;
	public static Color colores[]= {Color.YELLOW.brighter(), Color.BLUE, Color.RED, Color.ORANGE, Color.magenta, Color.PINK};
	private Rectangle clicarea;

	/**
	 * Constructor
	 * @param x
	 * @param y
	 * @param tamano
	 */
	public Pelota(int x,int y, int tamano){
		super();
		this.x = x;
		this.y = y;
		this.tamano = tamano;
		clicarea= new Rectangle(x,y,tamano, tamano);
	}
	
	/**
	 * Constructor
	 * @param x
	 * @param y
	 * @param tamano
	 * @param color
	 */
	public Pelota(int x, int y, int tamano, int color) {
		super();
		this.x = x;
		this.y = y;
		this.tamano = tamano;
		clicarea= new Rectangle(x,y,tamano, tamano);
		coloractual=color;
	}

	public int getColoractual() {
		return coloractual;
	}

	public void setColoractual(int coloractual) {
		this.coloractual = coloractual;
	}

	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getTamano() {
		return tamano;
	}

	public void setTamano(int tamano) {
		this.tamano = tamano;
	}

	public static Color[] getColores() {
		return colores;
	}

	public static void setColores(Color[] colores) {
		Pelota.colores = colores;
	}

	public Rectangle getClicarea() {
		return clicarea;
	}

	public void setClicarea(Rectangle clicarea) {
		this.clicarea = clicarea;
	}

	/**
	 * Metodo que permite dibujar una Pelota con un color especifico
	 * @param g
	 */
    public void dibujar(Graphics g){       
    
    int radius=tamano/2;
    int d14 = radius >>1; // one-quarter diameter
    int d34 = radius+d14; 
    
	g.setColor(colores[coloractual].darker());//.brighter());
    g.fillOval(x,y,tamano,tamano);
    g.setColor(colores[coloractual]);
    g.fillOval( x+d14-1,y+d14-1,d34,d34 );
    g.setColor( Color.black );
    g.drawOval( x,y,tamano,tamano);

}
    /**
     * Metodo que avanza al proximo color en el arreglo
     */
    public void cambiarColor(){
        coloractual++;
        coloractual=coloractual%6;
    }
    
    /**
     * Metodo que retorna Retorna True si la ubicacion esta en el click
     * del area del boton false de lo contrario
     */
    public boolean ubicacionclic(int x, int y)
    {
        return clicarea.contains(x, y);
    }
	
}
